﻿Imports DNP.GestionComercial.BE
Imports DNP.DevNetPeru.Data
Imports System.Data.SqlClient
Public Class ClienteDAL
    Public Function Guardar(ByVal pObjeto As ClienteBE, ByVal usuario As String) As RespuestaBE

        Dim lstUbigeo As New List(Of UbigeoBE)
        Dim oRespuesta As New RespuestaBE
        Dim mensaje As String

        Try

            Using cmd As New SqlCommand("COM_INS_COM_CLIENTE")

                cmd.CommandType = CommandType.StoredProcedure

                cmd.Parameters.Add("p_NCLI_CODIGO", SqlDbType.Int).Value = pObjeto.NCLI_CODIGO
                cmd.Parameters.Add("p_NCLI_TIPO_DOC", SqlDbType.Int).Value = pObjeto.NCLI_TIPO_DOC
                cmd.Parameters.Add("p_CCLI_DOCUMENTO", SqlDbType.VarChar).Value = pObjeto.CCLI_DOCUMENTO
                cmd.Parameters.Add("p_CCLI_NOMBRE", SqlDbType.VarChar).Value = pObjeto.CCLI_NOMBRE
                cmd.Parameters.Add("p_CCLI_APELLIDO", SqlDbType.VarChar).Value = pObjeto.CCLI_APELLIDO
                cmd.Parameters.Add("p_CCLI_TLFNO", SqlDbType.VarChar).Value = pObjeto.CCLI_TLFNO
                cmd.Parameters.Add("p_CCLI_TLFNO_CEL", SqlDbType.VarChar).Value = pObjeto.CCLI_TLFNO_CEL
                cmd.Parameters.Add("p_CCLI_EMAIL_01", SqlDbType.VarChar).Value = pObjeto.CCLI_EMAIL_01
                cmd.Parameters.Add("p_CCLI_EMAIL_02", SqlDbType.VarChar).Value = pObjeto.CCLI_EMAIL_02
                cmd.Parameters.Add("p_CCLI_UBIGEO", SqlDbType.VarChar).Value = pObjeto.CCLI_UBIGEO
                cmd.Parameters.Add("p_CCLI_DIRECCION", SqlDbType.VarChar).Value = pObjeto.CCLI_DIRECCION
                cmd.Parameters.Add("p_CCLI_RAZONSOCIAL", SqlDbType.VarChar).Value = pObjeto.CCLI_RAZONSOCIAL
                cmd.Parameters.Add("p_CCLI_ESTADO", SqlDbType.Char).Value = pObjeto.CCLI_ESTADO
                cmd.Parameters.Add("p_CAUDI_USR_INS", SqlDbType.VarChar).Value = usuario

                cmd.Parameters.Add("p_MENSAJE", SqlDbType.VarChar, 2000).Direction = ParameterDirection.Output

                BaseDatos.Execute(cmd)

                mensaje = Convert.ToString(cmd.Parameters("p_MENSAJE").Value)
                If mensaje.StartsWith("-1@") Then
                    oRespuesta.Respuesta = False
                    oRespuesta.Mensaje = mensaje.Split("@")(1)
                Else
                    oRespuesta.Respuesta = True
                    oRespuesta.Mensaje = mensaje
                End If

            End Using

        Catch ex As Exception
            oRespuesta.ValorRertono = lstUbigeo
            oRespuesta.Respuesta = False
            oRespuesta.Mensaje = ex.ToString

        End Try

        Return oRespuesta

    End Function

    Public Function Eliminar(ByVal pObjeto As PARAMETROBE, ByVal usuario As String) As RespuestaBE

        Dim lstUbigeo As New List(Of UbigeoBE)
        Dim oRespuesta As New RespuestaBE
        Dim mensaje As String

        Try

            Using cmd As New SqlCommand("COM_DEL_COM_CLIENTE")

                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("p_NCLI_CODIGO", SqlDbType.Int).Value = pObjeto.PARAMETRO01
                cmd.Parameters.Add("p_USUARIO", SqlDbType.VarChar).Value = usuario

                cmd.Parameters.Add("p_MENSAJE", SqlDbType.VarChar, 2000).Direction = ParameterDirection.Output
                BaseDatos.Execute(cmd)

                mensaje = Convert.ToString(cmd.Parameters("p_MENSAJE").Value)
                If mensaje.StartsWith("-1@") Then
                    oRespuesta.Respuesta = False
                    oRespuesta.Mensaje = mensaje.Split("@")(1)
                Else
                    oRespuesta.Respuesta = True
                    oRespuesta.Mensaje = mensaje
                End If

            End Using

        Catch ex As Exception
            oRespuesta.ValorRertono = lstUbigeo
            oRespuesta.Respuesta = False
            oRespuesta.Mensaje = ex.ToString

        End Try
        Return oRespuesta

    End Function

    Public Function ListarTodos(ByVal pParametro As PARAMETROBE) As RespuestaBE

        Dim lstObjeto As New List(Of ClienteBE)
        Dim oRespuesta As New RespuestaBE
        Dim dt As DataTable

        Try
            Using cmd As New SqlCommand("COM_SEL_COM_CLIENTE")
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("p_BUSCAR", SqlDbType.VarChar).Value = pParametro.PARAMETRO01

                Using dr As SqlDataReader = BaseDatos.GetDataReader(cmd)

                    dt = New DataTable()
                    dt.Load(dr)

                    oRespuesta.ValorRertono = dt
                    oRespuesta.Respuesta = True

                End Using



            End Using

        Catch ex As Exception
            oRespuesta.ValorRertono = lstObjeto
            oRespuesta.Respuesta = False
            oRespuesta.Mensaje = ex.ToString '"msgErrorCargarInfoBD" 

        End Try
        Return oRespuesta

    End Function

    Public Function Obtener(ByVal codigo As String) As RespuestaBE

        Dim obj As New ClienteBE
        Dim oRespuesta As New RespuestaBE

        Try

            Using cmd As New SqlCommand("COM_SEL_COM_CLIENTEXCODIGO")

                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("p_CODIGO", SqlDbType.VarChar).Value = codigo

                Using dr As SqlDataReader = BaseDatos.GetDataReader(cmd)
                    If dr.Read Then
                        obj = Utils.CreaObjeto(Of ClienteBE)(obj, dr)
                        oRespuesta.ValorRertono = obj
                        oRespuesta.Respuesta = True

                        Return oRespuesta
                    Else
                        oRespuesta.ValorRertono = obj
                        oRespuesta.Respuesta = True

                        Return oRespuesta
                    End If
                End Using

            End Using

        Catch ex As Exception
            oRespuesta.ValorRertono = obj
            oRespuesta.Respuesta = False
            oRespuesta.Mensaje = ex.ToString '"msgErrorCargarInfoBD" 

        End Try
        Return oRespuesta

    End Function

    Private Function LLenarEntidad(ByVal pdtrSource As System.Data.DataRow) As ClienteBE

        Dim abeResultado As New ClienteBE

        Try
            With abeResultado
                If pdtrSource.Table.Columns.Contains("NCLI_CODIGO") Then If IsDBNull(pdtrSource("NCLI_CODIGO")) Then .NCLI_CODIGO = 0 Else .NCLI_CODIGO = pdtrSource("NCLI_CODIGO")
                If pdtrSource.Table.Columns.Contains("NCLI_TIPO_DOC") Then If IsDBNull(pdtrSource("NCLI_TIPO_DOC")) Then .NCLI_TIPO_DOC = 0 Else .NCLI_TIPO_DOC = pdtrSource("NCLI_TIPO_DOC")
                If pdtrSource.Table.Columns.Contains("CCLI_DOCUMENTO") Then If IsDBNull(pdtrSource("CCLI_DOCUMENTO")) Then .CCLI_DOCUMENTO = String.Empty Else .CCLI_DOCUMENTO = pdtrSource("CCLI_DOCUMENTO")
                If pdtrSource.Table.Columns.Contains("CCLI_NOMBRE") Then If IsDBNull(pdtrSource("CCLI_NOMBRE")) Then .CCLI_NOMBRE = String.Empty Else .CCLI_NOMBRE = pdtrSource("CCLI_NOMBRE")
                If pdtrSource.Table.Columns.Contains("CCLI_APELLIDO") Then If IsDBNull(pdtrSource("CCLI_APELLIDO")) Then .CCLI_APELLIDO = String.Empty Else .CCLI_APELLIDO = pdtrSource("CCLI_APELLIDO")
                If pdtrSource.Table.Columns.Contains("CCLI_TLFNO") Then If IsDBNull(pdtrSource("CCLI_TLFNO")) Then .CCLI_TLFNO = String.Empty Else .CCLI_TLFNO = pdtrSource("CCLI_TLFNO")
                If pdtrSource.Table.Columns.Contains("CCLI_TLFNO_CEL") Then If IsDBNull(pdtrSource("CCLI_TLFNO_CEL")) Then .CCLI_TLFNO_CEL = String.Empty Else .CCLI_TLFNO_CEL = pdtrSource("CCLI_TLFNO_CEL")
                If pdtrSource.Table.Columns.Contains("CCLI_EMAIL_01") Then If IsDBNull(pdtrSource("CCLI_EMAIL_01")) Then .CCLI_EMAIL_01 = String.Empty Else .CCLI_EMAIL_01 = pdtrSource("CCLI_EMAIL_01")
                If pdtrSource.Table.Columns.Contains("CCLI_EMAIL_02") Then If IsDBNull(pdtrSource("CCLI_EMAIL_02")) Then .CCLI_EMAIL_02 = String.Empty Else .CCLI_EMAIL_02 = pdtrSource("CCLI_EMAIL_02")
                If pdtrSource.Table.Columns.Contains("CCLI_UBIGEO") Then If IsDBNull(pdtrSource("CCLI_UBIGEO")) Then .CCLI_UBIGEO = String.Empty Else .CCLI_UBIGEO = pdtrSource("CCLI_UBIGEO")
                If pdtrSource.Table.Columns.Contains("CCLI_DIRECCION") Then If IsDBNull(pdtrSource("CCLI_DIRECCION")) Then .CCLI_DIRECCION = String.Empty Else .CCLI_DIRECCION = pdtrSource("CCLI_DIRECCION")
                If pdtrSource.Table.Columns.Contains("CCLI_RAZONSOCIAL") Then If IsDBNull(pdtrSource("CCLI_RAZONSOCIAL")) Then .CCLI_RAZONSOCIAL = String.Empty Else .CCLI_RAZONSOCIAL = pdtrSource("CCLI_RAZONSOCIAL")
                If pdtrSource.Table.Columns.Contains("CCLI_ESTADO") Then If IsDBNull(pdtrSource("CCLI_ESTADO")) Then .CCLI_ESTADO = String.Empty Else .CCLI_ESTADO = pdtrSource("CCLI_ESTADO")
                

            End With

        Catch ex As Exception

        End Try
    End Function

End Class
